Con poche linee di codice siamo già pronti a spedire la nostra prima mail:
<%
Set objMail =
Server.CreateObject("CDONTS.NewMail")
objMail.Send "Luca@dominio.it",
"aspitalia@dominio.it", "Prove Posta", "La mia prima mail con CDONTS", 0
Set
objMail = nothing
%>
La cosa che subito balza all'occhio è la creazione, nella prima linea di
codice, di un oggetto NewMail (chiamato objMail).
Nella seconda linea
viene chiamato il metodo ObjMail.Send necessario a spedire la nostra
e-mail, al quale passiamo sotto forma di parametri il FROM, il TO, il SUBJECT e
il BODY di una normale e-mail, separati da virgole.
Una volta chiamto il
metodo objMail.Send , l'oggetto NewMail diventa
inutilizzabile per spedire altre mail, quindi diventa necessaro chiudere
objMail settandolo uguale a Nothing.
Esistono due modi per
inviare e-mail con CDO, il primo come abbbiamo visto implica l'utilizzo del
metodo objMail.Send con il passaggio contemporaneo dei parametri. Il
secondo, molto più efficace, separa i parametri tra loro, permettendo di essere
impostati individualmente, mentre il metodo objMail.Send viene invocato
solo alla fine per inviare l'e-mail:
<%
Set objMail =
Server.CreateObject("CDONTS.NewMail")
objMail.From="DA_Luca@dominio.it"
objMail.To="A_ASPItalia@dominio.it"
objMail.Subject="Prove Posta"
objMail.Body="La mia prima mail con CDO"
objMail.importance=0
objMail.Send
Set objMail = nothing
%>
Una delle cose più utili che possiamo fare con l'invio di una e-mail è allegare un file, con CDO è possibile fare questo attraverso il metodo objMail.attachFile, dopo aver istanziato un oggetto NewMail, oltre al percorso del file che si vuole allegare è possibile rinominare il file che stiamo inviando.
<%
Set objMail =
Server.CreateObject("CDONTS.NewMail")
objMail.attachFile("\\mio_computer\testo\file.txt","test.txt")
objMail.Send
"DA_Luca@dominio.it","A_ASPItalia@dominio.it","Prove Posta", "La
mia prima mail con CDO",0
Set objMail = nothing
%>
Le applicazioni professionali nell'utilizzo di form di contatto, registrazione o informazione prodotti, una delle cose che più si apprezzano è l'invio automatico di un'e-mail di risposta oppure l'invo al server dei dati stessi contenuti nella form. Come si può vedere dall'esempio sottostante tutto ciò si può realizzare con semplicità attraverso l'utilizzo di CDO.
<html>
<body>
<%
If
request("Button")="Invia" then
Set objMail =
Server.CreateObject("CDONTS.NewMail")
objMail.From=request("Address")
CorpoMessaggio="Grazie"
& request("Nome") & request("Cognome") & "per aver letto il mio
articolo"
objMail.Body=CorpoMessaggio
objMail.To="A_ASPItalia@dominio.it"
objMail.Subject="Risultati
da una Form di Prova"
objMail.Send
set objMail = nothing
response.write
"E-mail Inviata"
else
%>
<form action="FormMail.asp"
method="POST" name="CDOEMAIL">
Nome: <input type="text" size="20"
name="Nome"><br>
Cognome:<input type="text" size="20"
name="Cognome"><br>
E-mail: <input type="text" size="20"
name="Address"><br>
<input type="submit" name="Button"
value="Invia">
</form>
<%
End
if
%>
</body>
</html>
Pensiamo alle mailing list, sempre più spesso nelle applicazioni
professionali si ha l'esigenza di spedire e-mail ad una lista di soggetti anche
molto numerosa, per informarli su aggiornamenti o sull'uscita di nuovi
prodotti.
Nella maggior parte dei casi gli indirizzi di posta elettronica dei
clienti sono stipati in database, che possono essere interrogati per estrapolare
le informazioni che ci interessano, nel nostro caso gli EmailAddress.
<%
Set Conn =
Server.CreateObject("ADODB.Connection")
RSConnect = "dsn=MailingListDB"
Conn.Open RSConnect
Set rsEmails=Conn.Execute("Select EmailAddress From
Clienti")
Do While not rsEmails.eof
Set objMail =
Server.CreateObject("CDONTS.NewMail")
objMail.From="webmaster@aspitalia.com"
objMail.To=rsEmails("EmailAddress") 'Indirizzo estratto dal
database
objMail.Subject="Prova e-mail"
objMail.Body="Questa è una prova
di spedizione e-mail via CDO"
objMail.importance=0
objMail.Send
Set
objMail = nothing
rsEmails.movenext
loop
set rsEmails = nothing
Conn.close
Set Conn = nothing
%>
L'esempio qui sopra riportato è di facile intuizione e ci offre spunti interessanti per sviluppare applicazioni molto potenti basate sulla spedizione di e-mail.
Una delle possibilità più allettanti che potremmo offrire al nostro sito web è l'invio di pagine HTML via e-mail. Pensate di inviare un report dettagliato in HTML al vostro cliente subito dopo l'acquisto online sul vostro sito, questo e quant'altro può prendere spunto dall'esempio riportato qui sotto:
<%
Dim objMail
Set objMail =
CreateObject("CDONTS.NewMail")
objMail.AttachURL "c:\immagini\logo.gif",
"logo.gif" ' possiamo aggiungerne altre
HTML = "<!DOCTYPE HTML PUBLIC
""-//IETF//DTD HTML//IT"">" & NL
HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<meta
http-equiv=""Content-Type"""
HTML = HTML & "content=""text/html;
charset=iso-8859-1"">"
HTML = HTML & "<title>Prove di
Spedizione HTML</title>"
HTML = HTML & "</head>"
HTML =
HTML & "<body bgcolor=""#FFFFFF"">"
HTML = HTML &
"<p><font face=""Arial""><strong>"
HTML = HTML &
"<img src=logo.gif><br>"
HTML = HTML & "<a
href=http://www.ASPItalia.com>"
HTML = HTML & "Il sito Italiano sulle
Active Server Pages</a>"
HTML = HTML &
"</strong></font></p>"
HTML = HTML &
"<p>ASPItalia.com: Enjoy the .NET community!"
HTML = HTML &
"</body>"
HTML = HTML & "</html>"
objMail.From =
"Luca@dominio.it"
objMail.To = "aspitalia@dominio.it"
objMail.Subject =
"Novità su ASPItalia.com"
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Body = HTML
objMail.Send
%>
L'utilizzo di testo in format HTML è supportato grazie al settaggio dei due metodi:
objMail.BodyFormat = 0 ' se = a 1 formato testo
objMail.MailFormat = 0 '
se = a 1 formato testo
se fossero settati uguali a 1 avremmo predisposto CDO all'invio di un
messaggio in "plain text", testo.
Dobbiamo ricordare che non tutti i client
di posta elettronica sono abilitati a ricevere messaggi HTM via e-mail, ma tra
quelli abilitati troviamo Microsoft Outlook 9x/Express e Netscape Messenger, i
più diffusi in ambito domestico.
Dai pochi esempi riportati non è difficile capire le potenzialità che potrebbe acquistare il nostro sito web grazie all'utilizzo di CDO e database, soprattutto nella gestione di Mailing List e dei rapporti via e-mail con la clientela consolidata (info su prodotti, patch, aggiornamenti e quant'altro).
Configurare il
servizio SMTP di Windows 2000
Inviare un'e-mail
con allegati
Realizzare una
mailing-list con ASP 1/2
Aggiungere il nome
del mittente ad una e-mail generata con CDONTS
Formattare
un'e-mail
Costruire un
semplice form to mail
Un'alternativa a
CDONTS per spedire e-mail: ASPEmail
Inviare e-mail
utilizzando IISMail